Pular para o conteúdo principal

API de planejamento antecipado

dica

A API Plan-ahead é destinada ao envio de cronogramas com antecedência. Para controle ao vivo, veja Controle MQTT ao Vivo em vez disso.

O que você precisa

  1. Um nome de usuário e senha da API. Você pode usar sua conta Insights para isso ou solicitar uma conta da API enviando um e-mail para support@eniris.be, mencionando claramente o número de série do seu dispositivo.
  2. Ambiente de desenvolvimento Python (ou qualquer outro cliente MQTT). Este guia usa um exemplo básico escrito em Python para ajudá-lo a começar com MQTT e envio de comandos. Recomendamos usar Python pela facilidade de uso, mas qualquer outro cliente MQTT é suportado.

Configuração inicial (Ponto de partida para novos usuários)

1. Encontre os IDs dos dispositivos que você deseja controlar

O ID do dispositivo (também chamado de nodeId) é um identificador único para cada dispositivo em nosso sistema e é usado ao enviar comandos para os dispositivos.

Atualmente, a maneira mais fácil de obter seus IDs é navegando para: http://<CONTROLLER_IP>/debugger

Expanda a caixa 'Metadata' e anote cada nodeId de todos os dispositivos que você gostaria de controlar. Você precisará desses IDs em uma etapa posterior.

Imagem 1

2. Adicione seus dispositivos

Faça login na interface de comissionamento e certifique-se de que os dispositivos estão adicionados ao SmartgridOne Controller.

3. Adicione o sinal externo da API

Imagem 1
Imagem 1
Imagem 1
Imagem 1

4. Insira o token do coletor

Simplesmente insira o número de série do SmartgridOne Controller aqui e clique em enviar.

5. Selecione dispositivos para incluir

Nesta página, você tem a opção de incluir/excluir dispositivos para controle remoto. Certifique-se de marcar todas as caixas de seleção dos dispositivos que você gostaria de incluir.

Imagem 1

6. Fonte de dados foi adicionada

A interface de controle remoto foi ativada no SmartgridOne Controller. Você agora pode começar a enviar seus comandos para os dispositivos.

atenção

Não se esqueça de definir um regime de fallback no SmartgridOne Controller! Um modo de controle local precisa ser configurado além dos sinais da API externa que você envia. O controle local é usado como uma solução alternativa caso o SmartgridOne Controller perca a internet ou haja outras causas que impossibilitem que o sinal da API chegue ao SmartgridOne Controller.

Enviar comandos de controle remoto usando Python

Abaixo, há um trecho de Python sobre como controlar solar ou bateria.

dica

Consulte o documento Guia de Aplicação - Configurações Remotas para uma explicação mais completa com todas as políticas.

Pacote necessário: pip install eniris

# %% Imports
from eniris import ApiDriver
from eniris.point import Point
from eniris.point.writer import (PointDuplicateFilter, DirectPointToTelemessageWriter)
from eniris.telemessage.writer import PooledTelemessageWriter
from datetime import datetime, timezone

# %% Constants
COMMAND_UNTIL = '2024-04-16T10:26:00+02:00' # YYYY-MM-DDTHH:MM:SS+00:00
SN = '<SUBSTITUA>'
COMMAND = fields = {'policy': 2, 'powerSetpoint_W': 0.0} # 0: Padrão (auto-consumo); 2: Seguir configuração


# %% Iniciar redução
curtail_until = datetime.fromisoformat(COMMAND_UNTIL).astimezone(timezone.utc)
print(f'Seguindo comando até: {curtail_until}')
apiUsername = "<SUBSTITUA>"
apiPassword = "<SUBSTITUA>"

# Criar um driver da API e um gravador de pontos com a funcionalidade desejada
driver = ApiDriver(apiUsername, apiPassword)
writer = PointDuplicateFilter(
DirectPointToTelemessageWriter(
PooledTelemessageWriter(
authorizationHeaderFunction=driver.accesstoken,
params={"u": SN},
)
)
)
namespace = {'database': 'SGC', 'retentionPolicy': 'rp_one_s'}
tags = {
"serialNr": SN,
"nodeId": '<SUBSTITUA>',
}

writer.writePoints([Point(namespace, 'remoteControlSignals', curtail_until, tags, fields)])
writer.flush()
print('Despedido')

Preste atenção especial a:

  • O 'COMMAND_UNTIL': Este é um timestamp ciente do fuso horário que denota o horário de término do seu comando.
  • O 'COMMAND': Isso deve ser alterado de acordo com qual comando você gostaria de executar.
    • Ex.: para baterias, política 2 com powerSetpoint_W em 1000 vai carregar a bateria a 1 kW.
    • Para solar, política 2 com powerSetpoint_W em 0 desativará a produção solar.
    • Após o término do seu comando, ele voltará automaticamente ao controle padrão (conforme configurado no SmartgridOne Controller).
    • (políticas mais avançadas são suportadas, mas ainda não foram adicionadas a este guia).
  • A variável 'tags': Isso deve ser alterado de acordo com o SN do SmartgridOne Controller, onde nodeId deve ser definido como o ID do dispositivo que foi extraído em uma etapa anterior deste tutorial.
dica

Consulte o documento Guia de Aplicação - Configurações Remotas para uma explicação mais completa com todas as políticas.